package object._02getclass;
/*
源码：
    public final native Class<?> getClass();
    public:修饰符
    final:不能被重写
    native:本地方法 ---> 没有方法体
    Class:返回值的数据类型 返回该类对应的字节码未见对象Class
            这个对象是在类加载过程中生成的，类加载只有一次
            ---> 对象就一份
    getClass:方法名

类加载时机：
    1.main
    2.首次new
    3.首次访问类中的静态成员
    4.子类加载触发父类的加载，先父后子
 */
public class Demo {
    public static void main(String[] args) {
        Dog dog = new Dog("小红");
        Class c1 = dog.getClass();
        Class c2 = dog.getClass();
        System.out.println("c1 = " + c1);
        System.out.println("c1 = " + c1);
        System.out.println(c1 == c2);//true

        Dog dog1 = new Dog("小黑");
        Class c3 = dog1.getClass();
        System.out.println(c1 == c3);//true

    }
}

class Dog {
    String name;
    public Dog(String name){
        this.name = name;
    }
}
